<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 对象的增删改查  

        // 增 create 往对象中增加一个键值对  
        // 删 delete 删除对象的键值对 
        // 改 update 修改对象中 指定键对应的值 
        // 查 read   查看指定键对应的值 

        // 点语法  
        // 增  给一个不存在的键赋值  等同于增  对象.新键 = 新值
        // 删  delete 对象.键
        // 改  对象名.存在的键=新值 

        // 对象中键不允许重名 如果重名后边会把前面覆盖掉  
        // 查  对象名.键  
        // 存在 返回 对应的值
        // 不存在  返回undefined


        // var obj = {};
        // console.log(obj);
        // obj.name = 'zhangsan';
        // obj.age = 18;
        // obj.gender = '男';

        // console.log(obj);

        // delete obj.age;
        // console.log(obj);

        // obj.gender = '不详';
        // console.log(obj);
        // obj.sing = function(){
        //     return '正在唱歌';
        // }

        // console.log(obj.name,obj.gender);

        // console.log(obj.sing());
        // console.log(obj.age);








        // 数组关联语法
        // 增删改查
        // 增 对象[新键] = 值   特殊符号作为键 用引号包裹
        // 删 delete 对象[键]
        // 改 对象[已经存在的键] = 新值
        // 查 对象[键]     不存在这个键  undefined 

        // 如果是普通的单词或者拼音 增删改查 加上单引号包裹 
        // 数字不用加  
        // 特殊符号 也要加 
        
        // var obj = {};
        // console.log(obj);
        // // obj.11 = 123; 报错 
        // obj[11] = '123';
        // obj['%^&*'] = '456'
        // console.log(obj);

        // delete obj['%^&*']
        // console.log(obj);
        // obj[11] = '666999';
        // console.log(obj);

        // console.log(obj[11]);


        var a = 'age';

        var obj = {
            name:'张三',
            age:18,
            11:22,
            33:55,
            66:99
        }

        // console.log(obj.a); //undefined
        console.log(obj[a]); // 等同于 obj['age']
        console.log(obj['a']);//undefined



        // 数组关联语法和 点语法对于对象的操作区别?
        // 当键是正常的单词  两者没区别  
        // 当键是数字或者特殊符号  只能用数组关联语法 

        // 当键是变量 只能使用数组关联语法 而且不能使用引号包裹
    </script>
</body>
</html>